import { ref, computed } from 'vue'

// defineStore 定义一个 pinia 的仓库
import { defineStore } from 'pinia'

/**
 * const 返回值 = defineStore(storeId, 仓库的配置)
 *
 *    storeId:
 *        仓库名字，pinia 是可以有多个仓库的，每个仓库需要有一个唯一的名字
 *    仓库的配置:
 *        第一种叫 选项式
 *        第二种叫 组合式，类似 组件中 setup 函数的写法
 *    返回值：
 *        是一个组合式函数，在组件中使用时，需要调用该组合式函数
 *        组合式函数的返回值是当前 store 的实例对象
 *        store 的实例对象中有什么，是由仓库的配置来的
 *
 *
 */
export const useCounterStore = defineStore('counter', () => {
  // 通过 ref 创建数据
  const count = ref(0)

  // 通过 computed 创建 计算属性数据
  const doubleCount = computed(() => count.value * 2)

  // 定义一个函数
  function increment() {
    count.value++
  }

  // 需要将组件中用得到的给 return 出去
  return { count, doubleCount, increment }
})
